import { getPermission } from '../../../../utils/getPermission';
import { phoneRegCheck } from '../../../../utils/util';
import Toast from 'tdesign-miniprogram/toast/index';
import { addressParse } from '../../../../utils/addressParse';
import { resolveAddress, rejectAddress } from '../../address/list/util';

Component({
  externalClasses: ['t-class'],
  properties: {
    title: {
      type: String,
    },
    navigateUrl: {
      type: String,
    },
    navigateEvent: {
      type: String,
    },
    isCustomStyle: {
      type: Boolean,
      value: false,
    },
    isDisabledBtn: {
      type: Boolean,
      value: false,
    },
    isOrderSure: {
      type: Boolean,
      value: false,
    },
  },
  
  methods: {
    // getWxLocation() {
    //   if (this.properties.isDisabledBtn) return;
    //   getPermission({ code: 'scope.address', name: '通讯地址' }).then(() => {
    //     wx.chooseAddress({
    //       success: async (options) => {
    //         const { provinceName, cityName, countyName, detailInfo, userName, telNumber } = options;

    //         if (!phoneRegCheck(telNumber)) {
    //           Toast({
    //             context: this,
    //             selector: '#t-toast',
    //             message: '请填写正确的手机号',
    //           });
    //           return;
    //         }

    //         const target = {
    //           name: userName,
    //           phone: telNumber,
    //           countryName: '中国',
    //           countryCode: 'chn',
    //           detailAddress: detailInfo,
    //           provinceName: provinceName,
    //           cityName: cityName,
    //           districtName: countyName,
    //           isDefault: false,
    //           isOrderSure: this.properties.isOrderSure,
    //         };

    //         try {
    //           const { provinceCode, cityCode, districtCode } = await addressParse(provinceName, cityName, countyName);

    //           const params = Object.assign(target, {
    //             provinceCode,
    //             cityCode,
    //             districtCode,
    //           });
    //           if (this.properties.isOrderSure) {
    //             this.onHandleSubmit(params);
    //           } else if (this.properties.navigateUrl != '') {
    //             const { navigateEvent } = this.properties;
    //             this.triggerEvent('navigate');
    //             wx.navigateTo({
    //               url: this.properties.navigateUrl,
    //               success: function (res) {
    //                 res.eventChannel.emit(navigateEvent, params);
    //               },
    //             });
    //           } else {
    //             this.triggerEvent('change', params);
    //           }
    //         } catch (error) {
    //           wx.showToast({ title: '地址解析出错，请稍后再试', icon: 'none' });
    //         }
    //       },
    //       fail(err) {
    //         console.warn('未选择微信收货地址', err);
    //       },
    //     });
    //   });
    // },

    async queryAddress(addressId) {
      try {
        const { data } = await apis.userInfo.queryAddress({ addressId });
        return data.userAddressVO;
      } catch (err) {
        console.error('查询地址错误', err);
        throw err;
      }
    },
    

    findPage(pageRouteUrl) {
      const currentRoutes = getCurrentPages().map((v) => v.route);
      return currentRoutes.indexOf(pageRouteUrl);
    },

    async onHandleSubmit(params) {
      try {
        const orderPageDeltaNum = this.findPage('pages/order/order-confirm/index');
        if (orderPageDeltaNum > -1) {
          wx.navigateBack({ delta: 1 });
          resolveAddress(params);
          return;
        }
      } catch (err) {
        rejectAddress(params);
        console.error(err);
      }
    },
  },
});
